package metier;

import java.sql.Date;

public class AquariumDTO {
	private int numero;
	private float longueur;
	private float largeur;
	private float hauteur;
	private int solType;
	private String systemeFiltration;
	private String emplacement;
	private float longueurNeons;
	private float puissanceNeons;
	private float periodiciteNetoyage;
	private java.sql.Date dateDernierNetoyage;

	public AquariumDTO(int numero, float longueur, float largeur, float hauteur) {
		super();
		this.numero = numero;
		this.longueur = longueur;
		this.largeur = largeur;
		this.hauteur = hauteur;
	}

	public AquariumDTO(int numero, float longueur, float largeur, float hauteur,
			int solType, String systemeFiltration, String emplacement,
			float longueurNeons, float puissanceNeons,
			float periodiciteNetoyage, Date dateDernierNetoyage) {
		super();
		this.numero = numero;
		this.longueur = longueur;
		this.largeur = largeur;
		this.hauteur = hauteur;
		this.solType = solType;
		this.systemeFiltration = systemeFiltration;
		this.emplacement = emplacement;
		this.longueurNeons = longueurNeons;
		this.puissanceNeons = puissanceNeons;
		this.periodiciteNetoyage = periodiciteNetoyage;
		this.dateDernierNetoyage = dateDernierNetoyage;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public float getLongueur() {
		return longueur;
	}

	public void setLongueur(float longueur) {
		this.longueur = longueur;
	}

	public float getLargeur() {
		return largeur;
	}

	public void setLargeur(float largeur) {
		this.largeur = largeur;
	}

	public float getHauteur() {
		return hauteur;
	}

	public void setHauteur(float hauteur) {
		this.hauteur = hauteur;
	}

	public int getSolType() {
		return solType;
	}

	public void setSolType(int solType) {
		this.solType = solType;
	}

	public String getSystemeFiltration() {
		return systemeFiltration;
	}

	public void setSystemeFiltration(String systemeFiltration) {
		this.systemeFiltration = systemeFiltration;
	}

	public String getEmplacement() {
		return emplacement;
	}

	public void setEmplacement(String emplacement) {
		this.emplacement = emplacement;
	}

	public float getLongueurNeons() {
		return longueurNeons;
	}

	public void setLongueurNeons(float longueurNeons) {
		this.longueurNeons = longueurNeons;
	}

	public float getPuissanceNeons() {
		return puissanceNeons;
	}

	public void setPuissanceNeons(float puissanceNeons) {
		this.puissanceNeons = puissanceNeons;
	}

	public float getPeriodiciteNetoyage() {
		return periodiciteNetoyage;
	}

	public void setPeriodiciteNetoyage(float periodiciteNetoyage) {
		this.periodiciteNetoyage = periodiciteNetoyage;
	}

	public java.sql.Date getDateDernierNetoyage() {
		return dateDernierNetoyage;
	}

	public void setDateDernierNetoyage(java.sql.Date dateDernierNetoyage) {
		this.dateDernierNetoyage = dateDernierNetoyage;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime
				* result
				+ ((dateDernierNetoyage == null) ? 0 : dateDernierNetoyage
						.hashCode());
		result = prime * result
				+ ((emplacement == null) ? 0 : emplacement.hashCode());
		result = prime * result + Float.floatToIntBits(hauteur);
		result = prime * result + Float.floatToIntBits(largeur);
		result = prime * result + Float.floatToIntBits(longueur);
		result = prime * result + Float.floatToIntBits(longueurNeons);
		result = prime * result + numero;
		result = prime * result + Float.floatToIntBits(periodiciteNetoyage);
		result = prime * result + Float.floatToIntBits(puissanceNeons);
		result = prime * result + solType;
		result = prime
				* result
				+ ((systemeFiltration == null) ? 0 : systemeFiltration
						.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		AquariumDTO other = (AquariumDTO) obj;
		if (dateDernierNetoyage == null) {
			if (other.dateDernierNetoyage != null)
				return false;
		} else if (!dateDernierNetoyage.equals(other.dateDernierNetoyage))
			return false;
		if (emplacement == null) {
			if (other.emplacement != null)
				return false;
		} else if (!emplacement.equals(other.emplacement))
			return false;
		if (Float.floatToIntBits(hauteur) != Float
				.floatToIntBits(other.hauteur))
			return false;
		if (Float.floatToIntBits(largeur) != Float
				.floatToIntBits(other.largeur))
			return false;
		if (Float.floatToIntBits(longueur) != Float
				.floatToIntBits(other.longueur))
			return false;
		if (Float.floatToIntBits(longueurNeons) != Float
				.floatToIntBits(other.longueurNeons))
			return false;
		if (numero != other.numero)
			return false;
		if (Float.floatToIntBits(periodiciteNetoyage) != Float
				.floatToIntBits(other.periodiciteNetoyage))
			return false;
		if (Float.floatToIntBits(puissanceNeons) != Float
				.floatToIntBits(other.puissanceNeons))
			return false;
		if (solType != other.solType)
			return false;
		if (systemeFiltration == null) {
			if (other.systemeFiltration != null)
				return false;
		} else if (!systemeFiltration.equals(other.systemeFiltration))
			return false;
		return true;
	}

	@Override
	public String toString() {
		StringBuilder stringBuilder = new StringBuilder();
		stringBuilder.append("Aquarium [numero=");
		stringBuilder.append(numero);
		stringBuilder.append(", longueur=");
		stringBuilder.append(longueur);
		stringBuilder.append(", largeur=");
		stringBuilder.append(largeur);
		stringBuilder.append(", hauteur=");
		stringBuilder.append(hauteur);
		stringBuilder.append(", solType=");
		stringBuilder.append(solType);
		stringBuilder.append(", systemeFiltration=");
		stringBuilder.append(systemeFiltration);
		stringBuilder.append(", emplacement=");
		stringBuilder.append(emplacement);
		stringBuilder.append(", longueurNeons=");
		stringBuilder.append(longueurNeons);
		stringBuilder.append(", puissanceNeons=");
		stringBuilder.append(puissanceNeons);
		stringBuilder.append(", periodiciteNetoyage=");
		stringBuilder.append(periodiciteNetoyage);
		stringBuilder.append(", dateDernierNetoyage=");
		stringBuilder.append(dateDernierNetoyage);
		stringBuilder.append("]");
		return stringBuilder.toString();
	}

}
